package com.grm.workflow.listener;

import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.Map;

/*
serviceTask是flowable的Java服务任务.有四种表达方式:
有四种方法声明如何调用Java逻辑：
    指定实现了JavaDelegate或ActivityBehavior的类
    调用解析为委托对象（delegation object）的表达式
    调用方法表达式（method expression）
    对值表达式（value expression）求值
 */
@Component
@Slf4j
public class BorrowListener implements JavaDelegate {
    @Override
    public void execute(DelegateExecution execution) {
        log.info("执行任务监听器:{}",new Date());
        Map<String, Object> variables = execution.getVariables();
        variables.forEach((k,v)->{
            log.info("执行任务监听器:{},{}",k,v);
        });
    }
}
